package oracle;

import java.sql.*;

/**
 * 实现：利用Java 链接 Oracle 数据库CRUD【查】
 * 1.加载驱动
 * Oracle.jdbc.OracleDriver   Oracle10.0
 * com.mysql.jdbc.Driver Mysql5.5  Mysql5.5
 * 2.获取链接
 * ①获取数据Oracle基本信息：地址、用户名、密码
 * ②获取信息交给工具类DriverManager处理，链接成功返回 Connection
 * ③打桩测试，是否链接成功
 * ------------------------------------JDBC链接成功返回Connection
 * ------------------------------------JDBC-----CRUD"增删改"“查”
 * ④执行SQL---创建表--oracle中创建表   login表   序号、姓名、手机号
 *
 * */
public class OracleJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动--Oracle版本 16g
        Class.forName("oracle.jdbc.OracleDriver");
        //2.获取链接【准备工作：地址、用户名、密码】
        //①链接Oracle基本信息
        String username="system";                 //Oracle数据库 用户名
        String password="hanluke20040912.";       //Oracle数据库 密码
        //thin 瘦客户端--固定前缀
        String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
        //②Oracle 基本信息交给工具类
        Connection con=DriverManager.getConnection(url,username,password);
        //③打桩，数据库是否链接成功
        System.out.println("测试数据库是否链接成功："+con);
        //④执行SQL---Statement对象---CRUD操作  查询 executeQuery
        //链接成功Oracle之后，【Connection】产生Statement对象
        Statement st=con.createStatement();
        //执行SQL中的查询操作---查询语句
        String sql="select * from login";
        String ist="insert into login values(4,'卧底3','13663129852')";
        int rows=st.executeUpdate(ist);
        System.out.println(rows);
        //Statement对象 查询和增删改---查询方法：executeQuery
        //ResultSet对象---保存所有查询的记录数据【字段和记录】
        ResultSet rs=st.executeQuery(sql);
        //⑤处理结果【取所有记录数1.判断有没有字段2.取字段中记录数】
        while(rs.next()){
            //next()判断表中是否有字段，有字段返回true
            //                       无字段返回false
            //取出所有字段中的记录数
            int id=rs.getInt("id");
            String name=rs.getString("name");
            String phone=rs.getString("phone");
            System.out.println("login表中所有数据："+id+" "+ name+" "+phone);
            //⑥关闭资源
        }
        rs.close(); st.close(); con.close();
    }
}
